import datetime
import random



elements = [1, 2, 3, 4, 5]
weights = [0.05, 0.1, 0.15, 0.3, 0.4]

# 用于生成随机任务
class Task():
    key = ['size', 'complex', 'prior', 'delay_tolerate']
    def __init__(self, taskid, id):
        self.taskid = taskid # 任务id
        self.id = id # 任务所属传感器的id
        self.size = random.randrange(3500000, 4000000, 1) # 任务大小 单位是bit 一个任务在1~5Mb
        self.size_ = self.size
        # self.size = 5000000
        # self.createdate = datetime.datetime.now() # 任务创建时间
        self.complex = random.randrange(20, 25, 1) # 计算1bit所需的CPU周期数
        # self.complex = 25
        # self.prior = random.choices(elements, weights)[0] # 任务优先级
        # self.delay_tolerate = round(random.uniform(0, 3), 2) # 任务能忍受的最大延迟
        self.delay = {"wait": 0, "compute": 0, "transmission": 0} # 一个任务的延迟，依次分为队列等待时间、计算时间、传输时间
        self.flag = 0 # 任务是否被收集，0没有，1无人机，2卫星
        self.finish = 0 # 用于判断任务是否被完成，0没有，1无人机完成，2卫星完成，3云完成
        self.finish_step = 0 # 记录任务是在第几步完成的
        self.off_place = 0 # 任务的卸载位置,0本地1卫星2云服务器
        self.arrive_time = 0 # 任务被收集的到达时间

    def get_task_index(self):
        app_id_len = 1
        tan = 10
        while self.id > tan:
            app_id_len += 1
            tan = int(str(tan) + '0')
        return int(self.taskid[app_id_len:])



if __name__ == "__main__":
    t = Task('156', 1)

    print(t.size)
    print(t.size_)
    t.size_ -= 85000
    print(t.size)
    print(t.size_)
    t.size_ = t.size
    print(t.size)
    print(t.size_)


